// 发送短信前先验证该手机号是否注册过

const getMysql = require('../mysql.js')
// 随机生成验证码
// function RndNum(n) {
//     var rnd = "";
//     for (var i = 0; i < n; i++)
//       rnd += Math.floor(Math.random() * 10);
//     return rnd;
//   }

let emailCode = (function captchaNumber() {
  let num = [];
  for (let i = 0; i < 6; i++) {
    num[i] = parseInt(Math.random() * 10);
  }
  return num.join('');
})()

const QcloudSms = require('qcloudsms_js');

const cfg = {
  appid: 1400552187, // SDK AppID 以1400开头
  appkey: '3788a1b3abd7c1287fdb75f47edbd89e', // 短信应用 SDK AppKey
  templateId: 1049001, // 短信模板 ID，需要在短信控制台中申请
  smsSign: '梨和鲜橙',
}

// 简单封装一下, 向指定手机下发验证码
// sendCode('18212341234', 1234) // 发送短信
function sendCode(phone, code, time = 10) {
  phone = typeof (phone) === 'object' ? phone : [phone]
  const qcloudsms = QcloudSms(cfg.appid, cfg.appkey) // 实例化 QcloudSms
  const msender = qcloudsms.SmsMultiSender()
  msender.sendWithParam(86,
    phone, // 一个数组
    cfg.templateId, // 模版 id
    [code, time], // 正文中的参数值
    cfg.smsSign, // 签名 未提供或者为空时，会使用默认签名发送短信
    '', '',
    (err, res, resData) => { // 回调函数
      err && console.log('err: ', err)
      // console.log('request data: ', res.req)
      // console.log('response data: ', resData)
    })
}


const smsIphone = async (req, res) => {
  let phone = req.body.iphone
  let sql = 'select iphone from tarvel_user where iphone = ?'
  getMysql(sql, phone).then(result => {
    if (result.length == 0) {
      res.send({
        code: 202,
        message: '该手机用户未注册，请先注册'
      })
    } else {
      // 否则发送验证码
      sendCode(phone, emailCode)
      req.sessionStore.iphoneId = emailCode
      res.send('短信验证码发送成功')
    }
  })
}
module.exports = smsIphone

